package com.bot.nft.module.cm.service;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bot.nft.module.cm.domain.CmNoticeInfo;
import com.bot.nft.module.cm.domain.bo.CmNoticeInfoBo;
import com.bot.nft.module.cm.domain.vo.CmNoticeInfoVo;

/**
 * 描述: 站内公告业务接口，包含添加，发布站内公告核心业务功能 <br>
 *
 * 时间: 2023-11-22 09:30
 * 负责人: 卢梦丽
 **/
public interface ICmNoticeService extends IService<CmNoticeInfo> {


    /**
     * 新增站内公告功能
     *
     * @param noticeCmInfoBo 站内公告信息，包含站内公告标题，类型，内容等
     * @return  Boolean 成功/true，失败/false
     */
    public Boolean addNoticeCmInfo(CmNoticeInfoBo noticeCmInfoBo);

    /**
     * 修改站内公告功能
     *
     * @param noticeCmInfoBo 站内公告信息，包含站内公告标题，类型，内容等
     * @return  Boolean 成功/true，失败/false
     */
    public Boolean updateNoticeCmInfo(CmNoticeInfoBo noticeCmInfoBo);

    /**
     * 查看站内公告功能
     *
     * @param id id 站内公告标识
     * @return 站内公告信息，包含站内公告标题，类型，内容等
     */
    public CmNoticeInfoVo getNoticeCmInfo(String id);

    /**
     * 删除站内公告功能
     *
     * @param id 站内公告标识
     * @return Boolean 成功/true，失败/false
     */
    public Boolean delNoticeCmInfo(String id);

    /**
     * 发布站内公告
     *
     * @param id 站内公告标识
     * @return Boolean 成功/true，失败/false
     */
    public Boolean issueNoticeCmInfo(String id);

    /**
     * 禁用站内公告
     *
     * @param id 站内公告标识
     * @return Boolean 成功/true，失败/false
     */
    public Boolean disNoticeCmInfo(String id);

    /**
     * 分页查询站内公告功能
     *
     * @param keyword  站内公告关键字
     * @param status   站内公告状态(0.禁用 1.启用)
     * @param pageNo   当前页数
     * @param pageSize 每页显示条数
     * @return 站内公告信息*
     */
    public Page<CmNoticeInfoVo> queryNoticeByPage(String keyword, Integer status, Integer pageNo, Integer pageSize);




}
